今日進行 AJAX 的觀念以及簡單的操作
資料請求流程:
var xhr = new XMLHttpRequest();
xhr.open('get','test.json',true);
xhr.send(null);
XMLHttpRequest()
:用來建立 AJAX 請求,使用 var xhr = new XMLHttpRequest();
建立(變數 xhr 名稱可自訂)
xhr.open('格式','網址',BooLean)
'格式'
:get
代表讀取資料,post
代表傳送資料'網址'
:資料的路徑BooLean
:true
代表非同步,不會等資料回傳就繼續下一個動作,一般預設值; false
代表同步,會等資料回傳才進行下一步xhr.send('資訊')
:若無需要,則使用 null
代表空值
xhr.readyState
:可用 readyState
確認狀態
open()
)open()
讀取網址,但還沒有傳送send()
利用六角的 API 進行 get 練習:https://hexschool.github.io/ajaxHomework/data.json
開啟 chrome 的 console 進行以下確認
var xhr = new XMLHttpRequest();
xhr.readyState; // 顯示 0
xhr.open('get','https://hexschool.github.io/ajaxHomework/data.json',true);
xhr.readyState; // 顯示 1
xhr.send(null);
xhr.readyState; // 顯示 4
xhr.response; // 顯示 "[{"name":"王小名"}]"
一開始實作 send()
會跳錯誤 net::ERR_BLOCKED_BY_CLIENT
,頁面是練習的 index.html ,另開一個 chrome 的新頁面卻可以成功,經確認後應該是開啟廣告過濾工具的關係,關閉後即可正常 send()
送出 send()
後,狀態為 4 (done),要再次送出send()
會要求要先 open()
讓狀態為 1 (opened) 才可以繼續
繼續說明 AJAX